package main

import (
	"flag"
	"fmt"
)

/*
人格测试需求
从命令行输入测试者信息，如下：
renge.exe -name xxx -xingzuo xxx -age 40 -rmb 1234 -isafool true
Keys:
√ 人格与资产成正比，与年龄成反比
√ 姓名如果在4个字以上，人格成绩*=1.05
√ 很有钱还觉得自己是个蠢猪的，人格成绩*=1.1
√ 年纪一把、吊钱没有、还觉得自己挺聪明的，人格成绩*=0.8
√ 星座：天蝎、摩羯、水瓶，人格成绩*=1.05，处女座*=0.95
√ 人格系数：以40万/40岁为1
*/

func GetCmdArgs() (name, xz string, age, rmb float64, isafool bool) {
	namePtr := flag.String("name", "无名氏", "测试者姓名")
	xzPtr := flag.String("xingzuo", "蛇夫座", "测试者星座")
	agePtr := flag.Float64("age", 0, "测试者年龄")
	rmbPtr := flag.Float64("rmb", 0, "测试者资产")
	foolPtr := flag.Bool("isafool", true, "测试者自我感觉")
	flag.Parse()
	return *namePtr, *xzPtr, *agePtr, *rmbPtr, *foolPtr
}

func GetCmdArgsII() (string, string, float64, float64, bool) {
	var name, xz string  //""
	var age, rmb float64 //0.0
	var isafool bool

	//自己传入一个现成的地址
	flag.StringVar(&name, "name", "无名氏", "测试者姓名")
	flag.StringVar(&xz, "xingzuo", "蛇夫座", "测试者星座")
	flag.Float64Var(&age, "age", 0, "测试者年龄")
	flag.Float64Var(&rmb, "rmb", 0, "测试者资产")
	flag.BoolVar(&isafool, "isafool", true, "测试者自我感觉")
	flag.Parse()
	return name, xz, age, rmb, isafool
}

/*人格评分系统*/
func GetRenge(name, xz string, age, rmb float64, isafool bool) (score float64) {
	//进入评分系统
	//假设平均人格为60
	score = 60.0

	//以40万/40岁为标准系数1
	//人格与资产成正比，与年龄成反比，求得人格系数
	StdIndex := 1 / (400000.0 / 40.0)
	rmbAgeIndex := StdIndex * rmb / age
	score *= rmbAgeIndex

	//姓名如果在4个字以上，人格成绩*=1.05
	if len(name) > 3*4 {
		score *= 1.1
	}

	//星座：天蝎、摩羯、水瓶，人格成绩*=1.05，处女座*=0.95
	switch xz {
	case "天蝎", "摩羯", "水瓶":
		score *= 1.1
	case "处女":
		score *= 0.9
	}

	//资产年龄系数两倍于平均值，还觉得自己是个蠢猪的，人格成绩*=1.1
	if rmbAgeIndex > 2 && isafool {
		score *= 1.1
	}

	//年纪一把、吊钱没有、还觉得自己挺聪明的，人格成绩*=0.8
	if age > 30 && rmb < 400000 && !isafool {
		score *= 0.8
	}

	return
}

func main() {

	fmt.Println(GetCmdArgsII())

	////fmt.Println(len("你妹"))
	//score := GetRenge(GetCmdArgs())
	//fmt.Printf("您的评分是%.2f\n",score)
	//
	//switch {
	//case score >= 90:
	//	fmt.Println("666！")
	//case score >= 60 && score < 90:
	//	fmt.Println("很一般！")
	//default:
	//	fmt.Println("垃圾！")
	//}
}
